import {INCREMENT, DECREMENT} from './mutations.types'

var app = {
     // 全局状态
     state: {
        count: 0
    },
    // 只读的负责对外提供数据state filtters  调用方法$store.state.myCount('方法名')
    getters: {
       myCount (state){
         return `current count is ${state.count}`;
       }
    },
    // 修改state中的值 调用方式$store.commit('方法名',参数)
    mutations: {
        //参数只能有2个 一个state固定值 一个是调用时传过来的值
    // increment (state, n){
    //    state.count += n
    // },
    //    decrement(state, a) {
    //      state.count -= a
    //    }

     [INCREMENT](state, n = 1){
       state.count += n
    },
      [DECREMENT](state, a = 1) {
         state.count -= a
       }
    },
    // 数据业务逻辑 不涉及页面js逻辑
    actions: {
        //对mutations中的数据进行再复杂辅助处理  context是mutations的引用
      // myIncrease(context){
      //   context.commit('increment');
      // },
      // myDecrease(context){
      //   context.commit('decrement');
      // }
  
      async myIncrease(context, obj){
        console.log(">>>>>>",obj)
  
        // context.commit('increment', 2);
        context.commit(INCREMENT, 2);
  
        const products = [1,2,3,4,5]; //await axios.get()
        return products;
      },
      myDecrease(context){
        // context.commit('decrement', 1);
        context.commit(DECREMENT, 1);
      }
    }
}

export default app;